package com.atguigu.spzx.manager.service;

import com.atguigu.spzx.model.dto.product.ProductDto;
import com.atguigu.spzx.model.entity.product.Product;
import com.atguigu.spzx.model.entity.product.ProductSku;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * ClassName: ProductService
 * Package: com.atguigu.spzx.manager.service
 * Description:
 *
 * @Author 刘强
 * @Create 2024/7/6 13:48
 * @Version 1.0
 */
public interface ProductService {
    /**
     * 分页带条件查询
     * @param pageNum
     * @param pageSize
     * @param productDto
     * @return
     */
    PageInfo<Product> findByPage(Integer pageNum, Integer pageSize, ProductDto productDto);

    /**
     * 商品保存
     * @param product
     */
    void save(Product product);

    /**
     * 根据id查询
     * @param id
     */
    Product getById(Long id);

    /**
     * 根据id修改
     * @param product
     */
    void updateById(Product product);

    /**
     * 根据id删除
     * @param id
     */
    void deleteById(Long id);

    /**
     * 跟新审核状态
     * @param id
     * @param auditStatus
     */
    void updateAuditStatus(Long id, Integer auditStatus);

    /**
     * 商品的上下架状态修改
     * @param id
     * @param status
     */
    void updateStatus(Long id, Integer status);

    /**
     * 根据skuId获取sku
     * @param skuId
     * @return
     */
    ProductSku getBySkuId(Long skuId);
}
